package com.bestcem.xm.member.service;

import com.bestcem.xm.member.mq.message.FootprintMessage;
import com.bestcem.xm.member.mq.message.OrgCreatedMessage;
import com.bestcem.xm.member.mq.message.RespondentDataMessage;
import com.bestcem.xm.member.mq.message.UserMessage;

/**
 * @author ming.xue <ming.xue@idiaoyan.com>
 * @desc 联系人默认消息处理器
 * @date 2021-08-19
 */
public interface MemberMqHandler {
    /**
     * 保存联系人足迹
     *
     * @param message
     * @return
     */
    boolean saveFootprint(FootprintMessage message);

    /**
     * 创建默认标签分组及标签
     *
     * @param message
     * @return boolean
     * @author zhangfeng <feng.zhang@idiaoyan.com>
     * @date 2021/8/26 14:22
     */
    boolean createDefaultLabelGroup(OrgCreatedMessage message);

    /**
     * 创建联系人可见范围
     *
     * @param message
     * @return boolean
     * @author zhangfeng <feng.zhang@idiaoyan.com>
     * @date 2021/8/26 14:22
     */
    boolean createMemberDisplayRange(OrgCreatedMessage message);

    /**
     * 根据答卷信息创建/更新联系人
     *
     * @param data
     * @return
     */
    boolean createMemberByRespondentSubmit(RespondentDataMessage data);

    /**
     * 创建用户同步创建内部联系人
     *
     * @param userMessage 请求参数
     */
    void createInnerMemberByCreateUser(UserMessage userMessage) throws Exception;

    /**
     * 更新用户同步更新内部联系人
     *
     * @param userMessage 请求参数
     */
    void updateInnerMemberByUpdateUser(UserMessage userMessage) throws Exception;

}
